package controller.lista;

/**
 * Estrutura de dado de pilhas
 * @author Bruno
 * @version 1
 *
 */
public class Pilha {
	private No inicio;
	private int tamanho;
	
	public Pilha(){
		inicio = null;
		tamanho = 0;
	}
	
	/**
	 * Adiciona um valor na lista
	 * @param add Valod adicionados
	 */
	public void adiciona(Object add){
		No novoNo = new No(add);
		novoNo.prox = inicio;
		inicio = novoNo;
		tamanho++;
	}
	
	/**
	 * Le todos os valores da lista
	 * @return vetor com os objetos da lista
	 */
	public Object[] getPilha(){
		Object[] lista = new Object[tamanho];
		No aux = inicio;
		int cont = tamanho - 1;
		//Usa um while para ir adicionando na lista
		while(aux != null){
			lista[cont] = aux.dado;
			aux = aux.prox;
			cont--;
		}
		
		return lista;
	}
	
	public int getTamanho(){
		return this.tamanho;
	}
}
